home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Mac OS SDK / Dev.CD Jan 98 SDK1.toast / Development Kits (Disc 1) / Open Transport / Sample Code / Network Watch (DMZ) v1.5.1 / sources / dmz.h next >
Encoding:
C/C++ Source or Header  |  1996-11-19  |  18.7 KB  |  617 lines  |  [TEXT/MPS ]

  1. /*
  2.  *    dmz.h
  3.  *    
  4.  *    Modification History
  5.  *  6/6/96   rrk     Added <String.h> for compatibility with OT 1.1.1b SDK headers
  6.  *    5/27/94     rrk    Implemented support for PPC
  7.  *  2/1/94 by Peter Lovell, GE Information Services
  8.  *    for Think C 6.0
  9.  *    9/21/92  rrk    Implemented ATalk Trans Queue Handler
  10.  *    2/15/90    pvh    - first wrote this.  about freakin time...
  11.  *
  12.  */
  13.  
  14. #ifndef __DMZ__
  15. #define __DMZ__
  16.  
  17. #include    <Types.h>
  18. #include    <Quickdraw.h>
  19. #include    <ToolUtils.h>
  20. #include    <Fonts.h>
  21. #include    <Events.h>
  22. #include    <Windows.h>
  23. #include    <Dialogs.h>
  24. #include    <Menus.h>
  25. #include    <TextEdit.h>
  26. #include    <Scrap.h>
  27. #include    <SegLoad.h>
  28. #include    <Files.h>
  29. #include    <Devices.h>
  30. #include    <Memory.h>
  31. #include    <Lists.h>
  32. #include    <Script.h>
  33. #include    <Packages.h>
  34. #include    <OSUtils.h>
  35. #include    <CursorCtl.h>
  36. #include    <Traps.h>
  37. #include    <Resources.h>
  38. #include    <Errors.h>
  39. #include    <OSUtils.h>
  40. #include    <Strings.h>
  41. #include    <String.h>
  42. #include    <Gestalt.h>
  43. #include    <ConditionalMacros.h>
  44. #include    <MixedMode.h>
  45. #include    <AppleTalk.h>
  46. #include    "SpinCursor.h"
  47. #include    <LowMem.h>
  48.  
  49. #define __wchar_t__    // entered to get around header problems with Symantec C IDE
  50.  
  51. #include     <OpenTransport.h>
  52. #include     <OpenTptAppleTalk.h>
  53. #include    <stdlib.h>
  54.  
  55. /*
  56.  *    Structure necessary for MultiFinder compatibility.  Our own layer's A5
  57.  *    must be saved so globals can be used by the _PLookupName completion routine.
  58. */
  59.  
  60. #if powerc
  61. #pragma options align=mac68k
  62. #endif
  63.  
  64. typedef struct myMPPParamBlock {
  65.     long                 myA5;
  66.     MPPParamBlock         myMPP;    
  67. } myMPPParamBlock;
  68.     
  69. /* 
  70.  *    This is the structure that defines the "look" of our lists.  It includes
  71.  *    the object name, type, net, node & socket
  72.  */
  73. typedef struct myNetworkEntity {
  74.     char object[33];    
  75.     char type[33];    
  76.     char net[6];
  77.     char node[4];
  78.     char socket[4];
  79. } myNetworkEntity;
  80.  
  81. /* 
  82.  *    A few char codes…
  83.  */
  84. #define kEnterKey    (char)3
  85. #define kReturnKey    (char)13
  86.  
  87. /* 
  88.   *    HiliteMode low memory global.  We clear a bit at this address for using HiliteRGB
  89.   *    when inverting in our LDEF & when selecting items.
  90.   */
  91. #define HiliteModePtr    0x938
  92.  
  93. /* 
  94.   *    Offsets of the structure.  Used for the quicksort().
  95.   */
  96. #define myNetworkEntityObject    0 
  97. #define myNetworkEntityType     33+myNetworkEntityObject
  98. #define myNetworkEntityNet         33+myNetworkEntityType
  99. #define myNetworkEntityNode        6+myNetworkEntityNet
  100. #define myNetworkEntitySocket     4+myNetworkEntityNode
  101.  
  102. /* 
  103.  *    Justification constants for our list views.
  104.  */
  105. #define leftJust     1
  106. #define rightJust     2
  107.  
  108.  /* 
  109.   *    various stuff needed for AppleTalk bridging 
  110.   */
  111. #define sysABridge             0x19
  112. #define ABusVars             0x000002D8
  113. #define kBridgeSocket         0x6
  114. #define systemNetwork         0x1A
  115.  
  116.  /* 
  117.   *    other defines 
  118.   */
  119. #define kMachineNameResourceID    -16096
  120. #define kFlagshipNameResourceID    -16413
  121. #define    ddpMaxData                586
  122. #define ddpMaxRawData            599
  123. #define kNumBuffers                2
  124. #define kEchoSocket                4
  125. #define kEchoType                "\pEcho Socket"
  126. #define kEchoDDPType            4
  127. #define kMaxNamesToGet            380
  128. #define kLookupBufSize            32767
  129.  
  130.  /* 
  131.   *    defines for OpenTransport and ASLM
  132.   */
  133. #define kDefaultPoolSize    10000
  134. #define kOpenTransportInitFailed    -17000
  135.  
  136.  
  137.  /* 
  138.   * defines to indicate a change of status in AppleTalk
  139.   */
  140. #define    ATalkStatusChanged    1
  141. #define    ATalkActivated        2
  142.  
  143. /* 
  144.  *    calls for pre-Phase2 AppleTalk 
  145.  *    (already defined in LSC)
  146.  */
  147. #ifndef _GetZoneList         
  148. #define _GetZoneList    8
  149. #endif
  150.  
  151. #ifndef _GetLocalZone         
  152. #define _GetLocalZone    7
  153. #endif
  154.  
  155. #define entryLengths     20                /*  33 standard entityData length */
  156.  
  157. #define suspendResumeEvt     15
  158.  
  159. /*
  160.  *    Resource ID constants.
  161.  */
  162.  
  163. /*
  164.  *    Resource ID constants for string list items.
  165.  */
  166. #define kZoneStrID        1
  167. #define kObjectStrID    2
  168. #define kTypeStrID        3
  169. #define kNetStrID        4
  170. #define kNodeStrID        5
  171. #define kSktStrID        6
  172.  
  173. #define    kStringListID     128                /* ID for our string list resource */
  174.  
  175.  
  176. #define    appleID            128             /* This is a resource ID */
  177. #define    fileID             129             /* ditto */
  178. #define    editID             130             /* ditto */
  179.  
  180. #define    appleMenu        0                /* MyMenus[] array indexes */
  181. #define    aboutMeCommand    1
  182.  
  183. #define    fileMenu        1
  184. #define    lookupCommand     1
  185. #define    quitCommand     2
  186.  
  187. #define    editMenu        2
  188. #define cutCommand        3
  189. #define copyCommand        4
  190. #define pasteCommand    5
  191. #define clearCommand    6
  192. /*#define clearCommand    5*/
  193.  
  194. /* for sort child menu */
  195. #define objectItem            1
  196. #define typeItem            2
  197. #define netItem                3
  198. #define nodeItem            4
  199. #define socketItem            5
  200.  
  201. /*
  202.  * For the About Sample... DLOG
  203.  */
  204. #define    aboutMeDLOG        128
  205. #define    okButton            1
  206. #define    authorItem            2            /* For SetIText */
  207. #define    languageItem        3            /* For SetIText */
  208.  
  209. /*
  210.  * For the spin cursor... ACUR
  211.  */
  212. #define kDMZ_ACUR_ID        0
  213.  
  214. /*
  215.  *    constants for main dialog 
  216.  */
  217. #define kMainDialogID    129
  218.  
  219. #define kZoneListID            1
  220. #define kNameTypeListID        2
  221. #define kZoneItemID            4
  222. #define kTypeID                5
  223. #define kObjectID            6
  224. #define kObjectCountID        7
  225. #define kProgressID            8
  226. #define kNetID                9
  227. #define kNodeID                10
  228. #define kSocketID            11
  229. #define kDoLookupID            12
  230.  
  231. /*
  232.  *    constants for lookup dialog 
  233.  */
  234. #define kLookupDialogID    130
  235. #define kIntervalItem     3
  236. #define kCountItem         4
  237. #define kPhase2Item     5
  238. #define kObjectItem     8
  239. #define kTypeItem         9
  240.  
  241. /*
  242.  *    constant for Alert dialog
  243.  */
  244. #define    rUserAlert        1000                /* user error alert */
  245.  
  246.  
  247. #define    resumeMask                1        /* bit of message field for resume vs. suspend */
  248. #define    sysEnvironsVersion        1
  249.  
  250. /* 
  251.  *    quicksort "mode" constants 
  252.  */
  253. #define sortOnZoneName     1
  254. #define sortOnObject     1
  255. #define sortOnType         31
  256. #define sortOnNet         62
  257. #define sortOnNode         68
  258. #define sortOnSocket     72
  259.     
  260. /* 
  261.  *    constants for window activation 
  262.  */
  263. #define kActivateWindow        1
  264. #define kDeactivateWindow    0
  265.  
  266. /* 
  267.  *    low memory global for hilite RGB setting 
  268.  */
  269. #define HiliteRGB 0xDA0
  270.  
  271.  
  272. #define zoneNameSize     33
  273. #define kDefZonesToGet    64
  274. #define kMaxZoneBuffSize    32767
  275.  
  276. /* 
  277.  * constants for the gATalkFlags global
  278.  */
  279.  
  280. #define    kVMActive            0
  281. #define kATQInstalled        1
  282. #define kSocketBuffsHeld    2
  283. #define kNameRegistered        3
  284. #define    kATalkActive        4
  285. #define    kSocketBuffsInitd    5
  286. #define kListenerHeld        6
  287. #define kOTActive            7        // new flag to indicate Open Transport is active
  288. #define    kOTLookupActive        8
  289.  
  290. #define SetVMActiveFlag(flags)                (flags |= 1 << kVMActive)
  291. #define ClrVMActiveFlag(flags)                (flags &= (-1 ^ (1 << kVMActive)))
  292. #define TstVMActiveFlag(flags)                ((flags & (1 << kVMActive)) != 0)
  293.  
  294. #define SetATQInstalledFlag(flags)            (flags |= 1 << kATQInstalled)
  295. #define ClrATQInstalledFlag(flags)            (flags &= (-1 ^ (1 << kATQInstalled)))
  296. #define TstATQInstalledFlag(flags)            ((flags & (1 << kATQInstalled)) != 0)
  297.  
  298. #define SetSocketBuffsHeldFlag(flags)        (flags |= 1 << kSocketBuffsHeld)
  299. #define ClrSocketBuffsHeldFlag(flags)        (flags &= (-1 ^ (1 << kSocketBuffsHeld)))
  300. #define TstSocketBuffsHeldFlag(flags)        ((flags & (1 << kSocketBuffsHeld)) != 0)
  301.  
  302. #define SetNameRegisteredFlag(flags)        (flags |= 1 << kNameRegistered)
  303. #define ClrNameRegisteredFlag(flags)        (flags &= (-1 ^ (1 << kNameRegistered)))
  304. #define TstNameRegisteredFlag(flags)        ((flags & (1 << kNameRegistered)) != 0)
  305.  
  306. #define SetATalkActiveFlag(flags)            (flags |= 1 << kATalkActive)
  307. #define ClrATalkActiveFlag(flags)            (flags &= (-1 ^ (1 << kATalkActive)))
  308. #define TstATalkActiveFlag(flags)            ((flags & (1 << kATalkActive)) != 0)
  309.  
  310. #define SetSocketBuffsInitdFlag(flags)        (flags |= 1 << kSocketBuffsInitd)
  311. #define ClrSocketBuffsInitdFlag(flags)        (flags &= (-1 ^ (1 << kSocketBuffsInitd)))
  312. #define TstSocketBuffsInitdFlag(flags)        ((flags & (1 << kSocketBuffsInitd)) != 0)
  313.  
  314. #define SetListenerHeldFlag(flags)            (flags |= 1 << kListenerHeld)
  315. #define ClrListenerHeldFlag(flags)            (flags &= (-1 ^ (1 << kListenerHeld)))
  316. #define TstListenerHeldFlag(flags)               ((flags & (1 << kListenerHeld)) != 0)
  317.  
  318. #define SetOTActiveFlag(flags)                (flags |= 1 << kOTActive)
  319. #define ClrOTActiveFlag(flags)                (flags &= (-1 ^ (1 << kOTActive)))
  320. #define TstOTActiveFlag(flags)                ((flags & (1 << kOTActive)) != 0)
  321.  
  322. #define SetOTLookupActiveFlag(flags)        (flags |= 1 << kOTLookupActive)
  323. #define ClrOTLookupActiveFlag(flags)        (flags &= (-1 ^ (1 << kOTLookupActive)))
  324. #define TstOTLookupActiveFlag(flags)        ((flags & (1 << kOTLookupActive)) != 0)
  325.  
  326.  
  327. /* 
  328.  *    AppleTalk Phase 2 calls 
  329.  */
  330.  
  331. /* 
  332.  *    csCodes for new .XPP driver calls
  333.  */
  334. #ifndef xCall
  335. #define    xCall                246
  336. #endif
  337.  
  338. /* 
  339.  *    xppSubCodes 
  340.  */
  341. #ifndef zipGetLocalZones
  342. #define zipGetLocalZones     5
  343. #endif
  344. #ifndef zipGetZoneList
  345. #define zipGetZoneList        6
  346. #endif
  347. #ifndef zipGetMyZone
  348. #define zipGetMyZone         7
  349. #endif
  350.  
  351. /* 
  352.  *    mpp csCodes 
  353.  */
  354. #ifndef getAppleTalkInfo
  355. #define getAppleTalkInfo     258
  356. #endif
  357.  
  358. /*  
  359.  *    offsets for packet buffers to be used by socket listener
  360.  */
  361. typedef struct {
  362.         QElemPtr    qLink;
  363.         short        qType;
  364.         short        buffer_type;            /* DDP Type */
  365.         short        buffer_NodeID;            /* Destination Node */
  366.         AddrBlock    buffer_Address;            /* Source Address in AddrBlock format */
  367.         short        buffer_Hops;            /* Hop count */
  368.         short        buffer_ActCount;        /* length of DDP datagram */
  369.         OSErr        buffer_CheckSum;        /* Checksum returned here */
  370.         long        buffer_Ticks;            /* Timestamp of processing by socket listener */
  371.         char        buffer_Data[ddpMaxData]; /* the DDP datagram */
  372. } PacketBuffer;
  373.  
  374. typedef PacketBuffer *PacketPtr;
  375.  
  376. /*
  377.  *    The following stuff is implemented for the AppleTalk Transition Queue 
  378.  */
  379.  
  380. #define ATTransOpen                    0        /* .MPP just opened */
  381. #define ATTransClose                2        /* .MPP is closing */
  382. #define ATTransClosePrep            3        /* OK for .MPP to close? */
  383. #define ATTransCancelClose            4        /* .MPP close was canceled */
  384. #define ATTransNetworkTransition    5        /* .MPP Network ADEV transition */
  385. #define ATTransNameChangeTellTask    6        /* Flagship name is changing */
  386. #define ATTransNameChangeAskTask    7        /* OK to change Flagship name */
  387. #define ATTransCancelNameChange        8        /* Flagship name change was canceled */
  388. #define ATTransCableChange            'rnge'    /* Cable Range Change has occurred */
  389. #define ATTransSpeedChange            'sped'    /* Change in processor speed has occurred */
  390.  
  391. /*----------------------------------------------------------------------
  392.         NBP Name Change Info record
  393. ----------------------------------------------------------------------*/
  394. typedef struct NameChangeInfo {
  395.     Str32     newObjStr;    /* new NBP name */
  396.     Ptr    name;            /* Ptr to location to place a pointer to Pascal string of */
  397.                             /* name of process that NAK'd the event */
  398. }
  399.     NameChangeInfo, *NameChangePtr, **NameChangeHdl;
  400.  
  401. /*----------------------------------------------------------------------
  402.         Network Transition Info Record
  403. ----------------------------------------------------------------------*/
  404.  
  405. typedef struct TNetworkTransition {
  406.     Ptr        private;            /* pointer to private structure */
  407.     ProcPtr    netValidProc;        /* pointer to network validation procedure */
  408.     Boolean     newConnectivity;    /* true = new connection */
  409.                                      /* false = loss of connection */
  410.  
  411. }
  412.     TNetworkTransition , *TNetworkTransitionPtr, **TNetworkTransitionHdl;
  413.  
  414.  
  415. typedef    pascal long    (*NetworkTransitionProcPtr)(TNetworkTransitionPtr netTrans, \
  416.                       unsigned long theNet);
  417.  
  418. /*----------------------------------------------------------------------
  419.         Cable Range Transition Info Record
  420. ----------------------------------------------------------------------*/
  421. typedef struct TNewCRTrans {
  422.     short    newCableLo;    /* the new Cable Lo received from RTMP */
  423.     short    newCableHi;    /* the new Cable Hi received from RTMP */
  424. }
  425.     TNewCRTrans , *TNewCRTransPtr, **TNewCRTransHdl;
  426.  
  427. /*----------------------------------------------------------------------
  428.         AppleTalk Transition Queue Element
  429. ----------------------------------------------------------------------*/
  430. typedef struct    myATQEntry {
  431.     struct ATQEntry            *qLink;        /* have to maintain standard ATQ entries */
  432.     short                    qType;
  433.     ATalkTransitionEventUPP    CallAddr;        
  434.     Handle        globs;                    /* handle to user defined globals */
  435.     long        myA5;                    // A5 saved for the ATQ routine
  436. }
  437.     myATQEntry, *myATQEntryPtr, **myATQEntryHdl;
  438.  
  439. /*----------------------------------------------------------------------
  440.          Transition Queue global values
  441. ----------------------------------------------------------------------*/
  442. typedef struct    dmzEntry {
  443.     Boolean            atalkStatusChanged;    /* status of AppleTalk has changed */
  444.     Boolean            atalkActive;    /* AppleTalk is active/inactive */
  445.     NamesTableEntry    *dmzNTEPtr;        /* -> NTE entry to Remove name */
  446. }
  447.     dmzEntry, *dmzEntryPtr, **dmzEntryHdl;
  448.  
  449. /*----------------------------------------------------------------------
  450.          ProcPtr defines for PowerPC
  451. ----------------------------------------------------------------------*/
  452. enum {
  453.     uppInitListenerProcInfo = kPascalStackBased
  454.          | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  455.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(QHdrPtr)))
  456.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(QHdrPtr)))
  457. };
  458.  
  459. typedef pascal OSErr (*InitSktListenerProcPtr)(QHdr *freeQ, QHdr *usedQ);
  460.  
  461. #if USESROUTINEDESCRIPTORS
  462. typedef UniversalProcPtr    InitSktListenerUPP;
  463.  
  464. #define CallInitSktListenerProc(userRoutine, freeQ, usedQ)    \
  465.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppInitListenerProcInfo, (freeQ), (usedQ))
  466. #define NewInitSktListenerProc(userRoutine)        \
  467.         (InitSktListenerUPP) NewRoutineDescriptor((ProcPtr)userRoutine, uppInitListenerProcInfo, kM68kISA)
  468.  
  469. #else
  470.  
  471. typedef InitSktListenerProcPtr    InitSktListenerUPP;
  472.  
  473. #define CallInitSktListenerProc(userRoutine, freeQ, usedQ)    \
  474.         (userRoutine)(freeQ, usedQ)
  475. #define NewInitSktListenerProc(userRoutine)        \
  476.         (InitSktListenerUPP)(userRoutine)
  477.  
  478. #endif
  479.  
  480. /*----------------------------------------------------------------------
  481.         raw DDP packet buffer
  482. ----------------------------------------------------------------------*/
  483. typedef struct    RawDDPPacket {
  484.     UInt8        data[586 + 13];    // 586 is the TSDU size for DDP, 13 is for the long DDP Header
  485. }
  486.  RawDDPPacket, *RawDPPPacketPtr, **RawDPPPacketHndl;
  487.  
  488. /* prototypes ************* */
  489.  
  490. /* dmzmain.c */
  491. extern void        myVBLSpinInstall(void);
  492. extern int        stopAndDisposeSpinCursor(void);
  493. extern void        DrawBoldItem(WindowPtr whichWindow, short theItem, short whichStrID);
  494. extern pascal void    updateUserItems(WindowPtr whichWindow, short theItem);
  495. extern void        getandSetIt(short whichID);
  496. extern void        setupUserItems(void);
  497. extern void        setupLookupItem(void);
  498. extern void        doLookupItem(void);
  499. extern void        setWindowStdState(WindowPtr theWindow);
  500. extern void        setUpDialogs(void);
  501. extern void        FrameItem(DialogPtr whichDialog, short whichItem);
  502. extern void        doModeless(DialogPtr whichDialog, short whichItem);
  503. extern void        doIdle(void);
  504. extern void        DrawGrowBox(WindowPtr theWindow);
  505. extern void        doUpdate(WindowPtr theWindow);
  506. extern void        ShowMainWindowAndSizeIt(void);
  507. extern void        doInitializing(void);
  508. extern short    resizeRectToListCellSize(short height);
  509. extern void        resizeWindow(WindowPtr whichWindow, short height);
  510. extern Boolean    IsAppWindow(WindowPtr window);
  511. extern Boolean    IsDAWindow(WindowPtr window);
  512. extern Boolean    DoCloseWindow(WindowPtr window);
  513. extern void        DoZoomWindow(WindowPtr whichWindow, short partCode);
  514. extern void        DoGrowWindow(WindowPtr whichWindow, EventRecord *evt);
  515. extern void        doActivate(WindowPtr theWindow);
  516. extern void        doDeactivate(WindowPtr theWindow);
  517. extern void        doCleanUpAndTerminate(void);
  518. extern void        setupMenus(void);
  519. extern void        handleLookupDialogEdit(void);
  520. extern void        doCommand(long mResult);
  521. extern pascal void    aboutDialogOKFrame(WindowPtr theWindow, short itemNo);
  522. extern void        centerDialog(WindowPtr theWindow);
  523. extern void        showAboutMeDialog(void);
  524. extern void     BigBadError(Str255    message);
  525. extern Boolean  TrapAvailable(short theTrap);
  526. extern Boolean  IsVMOn(void);
  527. extern short     NumToolboxTraps(void);
  528. extern TrapType GetTrapType(short theTrap);
  529. extern void     DoSpinCursor(void);
  530. extern void     StopSpinCursor(void);
  531.  
  532.  
  533.  
  534. /* dmzlists.c */
  535.  
  536. extern void        invalidateItem(short whichItem);
  537. extern void        DisposOfMyLists(void);
  538. extern void        OpenZonesList(void);
  539. extern void        tellUserNoZones(void);
  540. extern int        myCompare(const void *aStr, const void *bStr);
  541. extern void        letsSort(Ptr theBuffPtr, short numZonesGot, short number);
  542. extern void        SetZoneCells(Ptr bufferPtr, short NumZonesGot);
  543. extern void        doZonesListStuff(void);
  544. extern void        OpenObjectTypeList(void);
  545. extern void        doObjectDoubleClick(void);
  546. extern void        doObjectTypeListStuff(void);
  547. extern void        padEntry(unsigned char *entry, short length, short just);
  548. extern void        SetObjectTypeCells(Ptr bufferPtr, short numDevicesGot);
  549. extern void     ClearZoneCells();
  550. extern void     ClearObjectTypesList();
  551. extern short    pcmp(StringPtr s1, StringPtr s2);
  552.  
  553. /* dmzat.c */
  554. extern pascal void saveThatA5(void);
  555. extern pascal void restoreThatA5(void);
  556. extern void     saveThisA5(myATQEntry *atqEntry);
  557.  
  558. extern unsigned char    *Pstrcat(unsigned char *s, unsigned char *t);
  559. extern unsigned char    PStrLen(unsigned char *e);
  560. extern Boolean    PStrComp(unsigned char *str1, unsigned char *str2);
  561. extern void        killLookups(void);
  562. extern void        removeMyNameAndSocket(void);
  563. extern void        closeUpOurAppleTalk(void);
  564. extern void        registerMyName(void);
  565. extern void        enableSetSelfSend(void);
  566. extern void        phase2Check(void);
  567. extern void        InitAppleTalkVars(void);
  568. extern void        addToUnpackedBuffer(Ptr oldBuffer, Ptr newBuffer, short numGot, short total);
  569. extern void        getMyZone(char *myZoneBuffer);
  570. extern void     doGetZoneListPhs2(void);
  571. extern void        doGetZoneListPrePh2(void);
  572. extern Boolean    zonesPresent(void);
  573. extern void        setItemString(DialogPtr whichDialog, short whichItem, Str255 str);
  574. extern void        getTheZoneList(void);
  575. extern void        processListUpdate(void);
  576. extern void        myCompletionRoutine(ParamBlockRec *paramBlock);
  577. extern void        setUpdateListFlag(void);
  578. extern char        giveMeItemValue(short whichItem);
  579. extern void        giveMeItemString(short whichItem, Str255 str);
  580. extern void        getTypesNamesInZone(char *NBPZone);
  581. extern void        doGetMyZonePhs2(void);
  582. extern void        doGetLocalZonesPhs2(void);
  583. extern void        doGetZoneListPhs2(void);
  584. extern void        setupEchoDialog(DialogPtr echoDialog, myNetworkEntity *myEnt);
  585. extern void        doEcho(myNetworkEntity *myEnt);
  586. extern long        ATalkTransQueue(long selector, myATQEntry *q, void *p);
  587. extern OSErr     InitEchoBuffers(void);
  588. extern short    AppleTalkVersion(void);
  589. extern Boolean     GestaltAvailable(void);
  590. extern Boolean  LAPMgrExists(void);
  591. extern void     restoreSetSelfSend(); 
  592.  
  593. /* dmzOT.c */
  594. extern OSErr    ActivateOpenTransport(void);
  595. extern Boolean  OpenTransportActive(void);
  596. extern void     GetBridgeAddressFromOT(AddrBlock *theAddr);
  597. extern void     CleanupOTServices(void);
  598. extern short    addToOTUnpackedBuffer(Ptr packedBuffer, Ptr unpackedBuffer, long len);
  599. extern UInt16   OTMySetNBPEntity(char *buffer, Ptr nbpObject, Ptr nbpType, Ptr nbpZone);
  600. extern void     DoOTGetMyZone(char *myZoneBuffer);
  601. extern void     DoOTNameLookup(char *NBPObject, char *NBPType, char *NBPZone);
  602. extern pascal void     MyDMZNBPHandler(void*  contextPtr, OTEventCode event, OTResult result, void* cookie);
  603. extern void     OTSetObjectTypeCells(Ptr ptr, short numDevicesGot);
  604. extern void     OTDeleteMyName (void);
  605. extern void     OTRegisterMyName (void);
  606. extern void     DoOTGetZoneList(void);
  607. extern void        ProcessOTListUpdate(char *resultStr);
  608. extern void     doOTEcho(myNetworkEntity    *myEnt);
  609.  
  610. /* OpenTptUtilities.c */
  611. extern short     OTExtractNBPCName(const NBPEntity* entity, char* field, UInt32 offset, UInt8 *delimiter);
  612.  
  613. #if powerc
  614. #pragma options align=reset
  615. #endif
  616.  
  617. #endif     // __DMZ__